//Author: Joshua Liben

#ifndef POLYNOMIALLINKEDLIST_H_
#define POLYNOMIALLINKEDLIST_H_


//Object Definitions
struct TermElement {
    int degree;
    double coeff;
    TermElement *next;
} ;

//Function Headers
double evaluate(TermElement*, double x);
TermElement* degreeMatch(TermElement*, int degree);
TermElement* addTerm(TermElement* root, double coefficient, int degree);
int printPolynomial(TermElement* root);
int removeTerm(TermElement* root);
double evaluatePolynomial(TermElement* root, double x);
TermElement* derivative(TermElement* root);
void freeList(TermElement* root);

#endif /*POLYNOMIALLINKEDLIST_H_*/
